package com.mazaiting.rabbitmq.constant;

/**
 * Rabbit MQ 队列名, 交换机名常量
 *
 * @author mazaiting
 * @create_time 2022/3/28 15:24
 */
public class MqConstant {
    /**
     * CorrelationData 数据中获取 ID 的头
     */
    public static final String KEY_RETURNED_MESSAGE_CORRELATION = "spring_returned_message_correlation";
    /**
     * 死信交换机 KEY
     */
    public static final String KEY_DEAD_LETTER_EXCHANGE = "x-dead-letter-exchange";
    /**
     * 死信路由key KEY
     */
    public static final String KEY_DEAD_LETTER_ROUTING = "x-dead-letter-routing-key";
    /**
     * 消息过期时间
     */
    public static final String KEY_MESSAGE_TTL = "x-message-ttl";
    /**
     * 队列可以容纳的消息的最大条数
     */
    public static final String KEY_MAX_LENGTH = "x-max-length";
    /**
     * 限定队列最大占用的空间大小
     */
    public static final String KEY_MAX_LENGTH_BYTES = "x-max-length-bytes";
    /**
     * 当队列在指定的时间内没有被使用(访问)就会被删除
     */
    public static final String KEY_EXPIRES = "x-expires";
    /**
     * 设置该队列中的消息的优先级最大值
     */
    public static final String KEY_MAX_PRIORITY = "x-max-priority";
    /**
     * Lazy Queues: 先将消息保存到磁盘上，不放在内存中
     */
    public static final String KEY_QUEUE_MODE = "x-queue-mode";
    /**
     * 延时消息
     */
    public static final String KEY_DELAY = "x-delay";
    /**
     * 消息过期时间 ttl(0秒)
     */
    public static final int DEFAULT_EXPIRATION_0 = 0;
    /**
     * 消息过期时间 ttl(10秒)
     */
    public static final int DELAY_EXPIRATION_S_10 = 10000;
    /**
     * 消息过期时间 ttl(1秒)
     */
    public static final int DELAY_EXPIRATION_S_1 = 1000;
    /**
     * 消息的最大长度
     */
    public static final int MESSAGE_MAX_LENGTH = 64 * 1024;
}
